23

» WarCraft 3 / Кости и анимации

Похожие вопросы:

ответ
Obelick, цитирую статью:
  1. Проблемы с видимостью
Бывает необходимо скрыть в части анимаций какую то поверхность, например останки (скелет). Вы спокойно выбираете эту поверхность, и начинаете в каждой анимке в первом кадре выключать видимость (необходимо и достаточно выключать - включать видимость именно в первом кадре анимации), чисто случайно переходите ко второму кадру - ба!, видимость включилась, и так далее, вы пытаетесь выключить видимость во всех кадрах нужных анимаций, и совершенно зря.
Нужно просто открыть сохраненную модель с выключенной в первых кадрах анимаций видимостью, затем открыть ее в War3ME, открыть вкладку ОКНА - РЕДАКТОР АНИМАЦИЙ ПОВЕРХНОСТЕЙ, выбрать Geosetanimation, в которой Альфа анимирована (стоит галочка). Щёлкаем по кнопке Альфа, открывается список с адресами. адр еса должны идти в порядке возрастания, а у вас скорее всего запись 0 :0 или 0 :1 находится где то в середине списка. Просто удаляем эту запись и ставим ее в самом начале списка. Проверяем правильный порядок адресов, и если надо, то исправляем. После двоеточия должна стоять цифра 0 или 1, все цифры, отличные от этих, необходимо переправить на 0. Проверяем анимации, с видимостью все должно быть в порядке.
Такие же списки видимости бывают и у костей, и у эффектов, и у текстур, советую также их проверять, если занимались анимированием этих объектов.
ответ
работает только с моделями, у которых одинаковый скелет
таких немного
ответ
делается в пару кликов в вот этой версии mdlvis'a...
удаляешь анимации, заходишь оптимизатор - проверяешь что стоит галочка на 3 пунке снизу, жмёшь Ок...
ответ
igor_razor, да, была такая программа. Как она называлась не помню. Matrix Eater или что-то такое. Советую поискать на хайве на форуме. Точно найдешь.
Еще можно в мдлвизе задать в глобальной анимации главной кости (обычно это bone_root) отрицательный масштаб -100 по оси Y и готово! ну, теоретически
Да, все верно, Matrix Eater. Ее автор Retera кстати - это чувак, который написал утилиту для генерации моих эффектов. Забавный факт. Вопрос закрываю, мой ответ вроде более чем полный.
ответ
Способ №1
Открываем модель в вар3ме, находим в "Менеджере последовательностей" спикок анимаций, находим нужную, открываем ее параметры, запоминаем интервал (диапазон кадров), например Stand [3000-4333]. Далее в "Редакторе узлов" находим нужную кость по названию, нажимаем правой редактировать узел, и в повороте, переносе и масштабировании удаляем все строки, которые попадают в диапазон кадров этой анимации.
Способ №2
Открываем модель в mdlvis, нажимаем "модули->редактор анимаций", выбираем " анимки", выбираем нужную анимацию, переключаемся на вкладку "движение", выделяем нужную кость, на линейке кадров выбираем первый кадр и с шифтом последний таким образом, чтобы выделить всю линейку, удаляем сразу все точки на линейке.
Способ №3
Конвертируем модель в текстовый формат .mdl, открываем файл в блокноте, находим блок со списком анимаций, затем блок с поворотом, переносом и масштабированием нужной кости и проделываем аналогично способу №1, в начале каждого блока указано количество строк в нем, при удалении строк нужно менять это значение.

23

» WarCraft 3 / Проблема с освещением

Похожие вопросы:

ответ
восстанови MiscData.ini
ответ
Это происходит из-за per-vertex освещения. От подобных визуальных артефактов очень сложно избавиться, но можно немного замаскировать их, подкорректировав модели освещения (например, немного уменьшить интенсивность diffuse освещения и увеличить ambient):

23

» WarCraft 3 / Триггерный урон

Похожие вопросы:

ответ
Триггерно невозможно изменить урон стандартных способностей - тебе нужно полностью создавать весь эффект способности триггерно, а саму способность использовать только для запуска триггеров.
ответ
Ну разумеется нет, для этих пассивок нужен факт атаки а не тупо урон, урон наносится после удачного факта атаки.
ответ
Наименее ресурсозатратным для игрового процесса будет кастовать саму волну через отдельного дамми, который создаётся специально и только для волны силы. Сама волна наносит 1 ед урона. И потом определив, тип юнит-источника урона - наносим нужный урон от лица героя-хозяина юнита "волна силы".
В варианте "чекать группы каждые 0.0х сек" будет засоряться память и скорее всего будут подлагивания, в варианте со спец-дамиками засорится РО, выбирай из двух зол.
ответ
Останавливаешь юнит во время каста заклинания.
Создаёшь дамика.
Даёшь кастуемую способность.
Даёшь приказы на направление способности.
другой триггер отлавливает получение урона юнитами и если тип источника урона - дамми, то нанести такой-то урон от лица героя-хозяина.
ответ
Astra, очень багано
так как после последней атаки может многое изменится
так же урон при событие юнит получает урон зависит от брони и прочих резистов
если юнит с уроном 100 нанёс удар по врагу с физ резистом 50% а потом получил бафф/предмет на +100 урона то скилом нанесёт 50 урона хотя должен был бы нанести 200
тут нужно юзать бд
при касте скила брать из бд начальный урон юнита, бонусы предметов и бонусы всех бафов
тема кстати уже много раз поднималась
и каждый раз все заканчивалось тем что афтар забивал на подобную систему либо писал "вы все нубы/тролли и не знаете/не хотите сказать как сделать это легко и просто"
ибо подобная система требует кучи кода и как минимум 30 прочтённых статей по jass
вот статья о бд

23

» WarCraft 3 / Изменение анимации (способность)

Похожие вопросы:

ответ
Поиграйся с орбэффектами, добавляя в разрешённые цели необходимую клиссификацию. А вообще, просто поступи так:
Атака есть изначально, но при ударе юнитом по камню или дереву, проверка, имеет ли он кирку, и если да, тогда ролить переменную от N до N, и если равно N - создать такой то ресурс.
Можно также сделать систему с уровнем кирки(ну типа деревянная каменная железная алмазная окда), и по уровню кирки определять коилчество последовательностей "Иначе": Роллить первое число от 1 до 100 - камень. Если не выпал, но кирка у тебя выше деревянной - Роллить от 1 до 200 - железо. Если не выпало, но кирка выше каменной - роллить от 1 до 1000 - аметист, и т.д.

23

» WarCraft 3 / Изменение значения предмета.

Похожие вопросы:

ответ
Нет, тока кешь - тем более лимита на число значений в файле кеша нету, хоть миллион значений заноси.
По мимо героя, что тебе надо :
  1. Можно пробовать Preload Exploit, но если чесно - кешь удобнее, особенно для гуишников.

23

» WarCraft 3 / Как сделать захват территории?

Похожие вопросы:

ответ
Gerych, сюда тоже можно но вопрос будет закрыт через неделю с момента последнего ответа
ну а вообще для таких вещей стоит создать бложик и там в качестве ресурса подобное спрашивать

23

» WarCraft 3 / Стрельба на ходу

Принятый ответ
Похожие вопросы:

ответ
Используй способность "ракеты" с изменённой моделью дальной атаки на огненные стрелы и запихни её в книгу заклинаний.
И дай эту книгу даммику.

23

» WarCraft 3 / Кулдаун на способность

Похожие вопросы:

ответ
В предмете ID кулдауна разный ставьте.
ответ
SetUnitPropWindow
Спс, что то раньше этой нативки не видел, ну пока сделал на пересоздании предмета, там посмотрим.
ответ
Ну, перенеси всё это clawbfs.ucoz.ru/forum/3-2-1 и итемы и две игровые карты с кучей режимов и сотни шапок и т. д. + в 2 раза больше новых идей clawbfs.ucoz.ru/forum/7 clawbfs.ucoz.ru/forum/16-1571-1 clawbfs.ucoz.ru/forum/9 со всеми функциями варкрафта (а их там всё же не так уж и мало) в игру на юнити или ещё куда в один присест, сделай дело доброе.
Бтв, про сбор команды - для продвинутых сущностей нередко исправлять за другими оказывается тяжелее, чем делать самому, важно создать максимально комфортные условия для созидания, вот для чего деньги не лишние, а уж дело и самому можно делать.
И, да, тема-то не про то, надо это или не надо, а про то, как лучше это сделать, я про это и в стартовом сообщении написал.
Я на крайний сам вопрос по варианту 3 проверю и/или будет сделан выбор между третьим вариантом, вторым, каким-то ещё и отказом от Cooldown Reduction, но если кто поможет - спасибо.
ответ
Gerhop, если у игрока лишь 1 герой то можно сразу дать этот скилл
при подборе предмета разрешать его а при выпадении запрещать
тогда вроде кд будет сохранятся
если мне память не изменяет
ответ
а нафига так много ифов?
если каждый лвл даёт по 12 пробегов цикла то не проще ли написать
цикл от 1 до 12*лвл способности
только лвл способности в локалке хранить надо
ошибка в том что в цикле используется глобальная переменная A
когда триггер работает он каждую секунду увеличивает значение A на 1
если триггер был запущен дважды то каждую секунду A увеличивается на 2
как только A достигает лимита(12*лвл способности) все циклы использующие переменную A завершаются
для того чтобы избавиться от этого бага надо юзать локальные переменные
у нас есть куча статей по локалкам, циклам, и прочей фигне

23

» WarCraft 3 / Патроны в Инвентаре

Похожие вопросы:

ответ
ответ
BrEd Pitt:
nvc123, это я еще до регистрации читал.
Все, вопрос решен благодаря пересмотру своей же тупости. Все спасибо.

23

» WarCraft 3 / как проверить есть ли предмет у юнита?

Похожие вопросы:

ответ
Проблема решена. Обнаружилась довольно неожиданно - заметил, что во время крита герой не разбивал лицо сам себе, начал искать модификаторы атаки - у героя было 3 пустышки с нулевыми значениями на основе "ракет". При всех пустых значениях вылетает невидимая ракета по самому себе.
ответ
Steal nerves:
циклом (данного юнита от 1-6 слотов, на jass от нумерация слотов начинается так 0-5) пробегаешься по каждому слоту и проверяешь тип, кол-во зарядов. я на гуи что-то не нашел эту команду UnitItemInSlot
native UnitItemInSlot takes unit whichUnit, integer itemSlot returns item
кол-во итемов
ищем в каждом слоте один и тот же тип предмета. Этот код считывает кол-во итемов занимаемые в слотах
local integer id = ''//id-предмета, забудь указать в кавычках ид
local integer i=0 //для цикла
local integer c=0 //кол-во предметов
local unit u = //нужно не забыть указать юнита
//внизу начинается цикл, его блок 
loop //начало цикла
    exitwhen i > 5 //условие выхода из цикла
    if GetItemTypeId(UnitItemInSlot(u,i)) == '' then //если тип в слоте равен ....
        set c = c + 1
    endif
    set i = i + 1
endloop //конец цикла
кол-во предметов данного типа с N зарядами
local integer id = '' //id-предмета, забудь указать в кавычках ид
local integer i=0 //для цикла
local integer c=0 //кол-во предметов
local unit u = //нужно не забыть указать юнита
loop
    exitwhen i > 5

    if GetItemTypeId(UnitItemInSlot(u,i)) == id or GetItemCharges(UnitItemInSlot(u,i)) == 5 then //если тип в слоте такой, и и у этого итема зарядов равно 5
        set c = c + 1
    endif
    set i = i + 1
endloop
set u = null

23

» WarCraft 3 / Тип атаки)

Похожие вопросы:

ответ
извиняюсь за беспокойство нашел более лучшее решение проблемы
ответ
Если нужны только 2 типа атаки, то, может, подойдут способности сфер, которые включают атаку №2?
Тогда не нужно делать много типов юнитов.
ответ
Не слушай этих плз. В игровых константах поройся
ответ
Если очень сильно надо - гугли Easy damage system для разъяснений, вот тебе сама система.
ответ
Steal nerves:
В хаке есть функции переключения атаки (1 атака, 2 атака). В РО придется настроить атаки (цели атаки, тип атаки). Еще есть включения, можно включить одну из двух, а можно сразу одновременно две атаки включить. Это получше чем с орбом, ибо потом другой какой-нибудь орб не сможешь юзать. Есть отдельные функции смены типа атаки и защиты. Короче можно всю атаку подстроить (урон, кол-во костей, урон 1 кости, скорость снарядов и прочее). Практичски много чего вкусного и интересного есть
смотреть сюда
//тип защиты 
function GetUnitArmorType takes unit u returns integer
function SetUnitArmorType takes unit u, integer id returns nothing
//защита
function GetUnitArmor takes unit u returns real
function SetUnitArmor takes unit u,real r returns nothing
//атаки (1 атака, 2 атака, или обе атаки)
function SetUnitAttackType takes unit u, integer i, integer attacknum returns nothing
//тип атаки
function SetUnitAttackType1 takes unit u, integer i returns nothing
function SetUnitAttackType2 takes unit u, integer i returns nothing
function GetUnitAttackType1 takes unit u returns integer
function GetUnitAttackType2 takes unit u returns integer
//
function SetUnitWeaponType takes unit u, integer i returns nothing
function GetUnitWeaponType takes unit u returns integer

23

» WarCraft 3 / Классы предметов

Похожие вопросы:

ответ
пикнутый итем это для цикла
а у тебя тут должен быть манипулятед итем
ответ
Писать для них искусственный интеллект. В базе была статья про создание ИИ для героев, но куда-то делась. Попробую найти.
UPD: Вот, восстановили, была недоступна из-за ошибки базы.
Правда конкретно про предметы там нет, но можно догадаться на примере того, как реализованы другие действия.
ответ
Криэйтлян, xgm.guru/p/wc3/wc3bd
от тебя только мозг понадобится и хотя бы 1 рука
атачить можно через хэш/массив
ssbbssc, твой вариант требует пробега по массиву
что не есть хорошо
особенно если массивов несколько
ответ
Разобрался.

23

» WarCraft 3 / Атаки волнами

Похожие вопросы:

ответ
Возможно, залазим в slk и там правим еффекты на нужные.
ответ
Dimari93, во первых
для того чтобы написать комментарий не надо цитировать предыдущий
во вторых
ai файл это файл с джасс кодом
не знаешь джасс - ничего не поймёшь в ai и следовательно не сможешь модифицировать
в общем все возможные ответы даны и разжёвано так что любой знающий основы джасс поймёт
вопрос закрыт
ответ
Автор похоже имеет виду переименованные типы брони и атаки. Например вместо "Герой" указана "Титан". Если да, то это легко настраивается в игровом интерфейсе (текст), а в игровых константах (значения атаки и брони)
ответ
GF RaiseD:
Как делать спеллы, урон которых будет зависеть от стат?
Почитать статьи и хотя бы открыть редактор. Попытайся подумать/поискать сам вместо того чтоб искать туториалы к любому возникшему вопросу. Это не круто.
ответ
Я сам разобрался с проблемой. Конечно тут две новые появились, но на них забью уже:
  1. ИИ не нравился герой, из-за него вообще никто не нанимался.
  2. ИИ посчитал, что улучшив главное здание, он лишается главного здания, а значит нужно его снова строить. То есть, например, улучшив ратушу до крепости, он считает, что ратуши больше нет и необходимо построить ещё одну. Потом он крепость улучшит до замка, посчитает, что разрушили крепость, улучшит до крепости ратушу№2, снова потеряет ратушу и построит уже третью.